package com.itfenghuang.day07;

import java.util.*;

public class A04_Map {
    /**
     * 1.概念
     *  Map 集合: 键值对集合  key 键  value值
     *      特点:
     *          1.双列集合,一个键对应一个值,键不可以重复,值可以
     * 2.Map集合基本使用
     *      1.常用方法
     *          增删改查
     *          V put(K key, V value) 添加元素 修改元素
     *          *  V remove(Object key) 根据键删除键值对元素
     *          *  V get(Object key)  根据指定的键返回对应的值
     *          *  void clear() 移除所有的键值对元素
     *          *  boolean containsKey(Object key) 判断集合中有没有指定的key
     *          *  boolean containsValue(Object value) 判断集合中是否包含指定的值
     *          *  boolean isEmpty() 判断集合是否为空
     *          *  int size() 集合的长度   集合中键值对的个数
     */
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>( );
        //添加方法  键 值
        map.put("小泽",22);
        map.put("小波",10);
        map.put("小苍",33);
        map.put("小深",31);
        //通过键删除一个键值元素
//        map.remove("小深");
//        System.out.println(map);
        //修改就是添加方法
//        map.put("小苍",50);
//        System.out.println(map.get("小泽"));

//        System.out.println(map.size());
        //清空
//        map.clear();
//        System.out.println(map);
        //判断集合是否为空
//        System.out.println(map.isEmpty());
        //判断是否包含指定的键
//        boolean b = map.containsKey("小武");
//        boolean b1 = map.containsValue(19);
//        System.out.println(b+" "+b1);

        //遍历
        //第一种方法 .keySet();
        // 将map集合中所有的元素key存储到一个set集合中
        Set<String> set = map.keySet();//增强for
        for (String key : set) {
            Integer value = map.get(key);
            System.out.println(key+" "+value);
        }
        System.out.println("================");
        //第二种方法   map.entrySet();
        //将键值对 封装成Entry 对象,然后存到set集合中 set集合中每一个元素都是一个键值对象
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        Iterator<Map.Entry<String, Integer>> it = entries.iterator();
        while (it.hasNext()){
            Map.Entry<String, Integer> next = it.next();
            String key = next.getKey();
            Integer value = next.getValue();
            System.out.println(key+" "+value);
        }

    }

}
